A good answer might be:

Is this OK? Sure. The caller has sent the value 7000 to the method.

What does amount = 0 do in the method? This changes the local copy of the value from 7000 to 0.

But this does not affect the caller. Look back at the caller---the value 7000 is not contained in a variable. There is nothing that the called method could change.

Local Variables

A local variable is a variable that is declared inside of the body of a method. It can be seen only by the statements that follow its declaration inside of that method. (Its scope starts where it is declared and ends at the end of the method.) For example, charge  of  processCheck is a local variable:

class CheckingAccount
{
  . . . .
  private int    balance;


  void processCheck( int  amount  )
  {                          
    int charge;   // scope of charge starts here

    incrementUse();
    if ( balance < 100000 )
      charge = 15; 
    else
      charge = 0;

    balance =  balance -  amount  - charge  ;
  }              // scope of charge ends here

}

The local variable charge is used in a typical fashion. It is used to hold a temporary value while something is being calculated. Local variables are not used to hold the permanent values of an object's state. They have a value only during the brief amount of time that a method is active.

QUESTION 9:

Is the scope of a local variable always the entire body of a method?